package com.buss.product.service;

import com.buss.core.persistence.ResultList;
import com.buss.product.model.GoodsProp;

public interface GoodsPropService {
	/**
	 * 新增商品属性信息
	 * @param goodsProp
	 * @return
	 */
	public GoodsProp saveGoodsProp(GoodsProp goodsProp);
	
	/**
	 * 修改商品对应属性信息
	 * @param goodsProp
	 */
	public void editGoodsProp(GoodsProp goodsProp);
	
	/**
	 * 删除指定商品对应的属性信息
	 * @param id
	 */
	public void removeGoodsProp(Long[] ids);
	
	/**
	 * 删除指定商品属性信息
	 * @param goodsId
	 */
	public void removeGoodsPropByGoodsId(Long goodsId);
	
	/**
	 * 获取指定的商品对应属性信息
	 * @param id
	 * @return
	 */
	public GoodsProp loadGoodsProp(Long id);
	
	/**
	 * 根据商品ID和属性ID获取商品对应属性信息
	 * @param goodsId
	 * @param catePropId
	 * @return
	 */
	public GoodsProp loadGoodsProp(Long goodsId,Long catePropId);
	
	/**
	 * 跟商品ID获取属性编码获取商品对应的属性信息
	 * @param goodsId
	 * @param propCode
	 * @return
	 */
	public GoodsProp loadGoodsProp(Long goodsId,String propCode);
	
	/**
	 * 根据商品编码和属性ID获取商品对应的属性信息
	 * @param goodsCode
	 * @param propId
	 * @return
	 */
	public GoodsProp loadGoodsProp(String goodsCode,Long propId);
	
	/**
	 * 根据单位编码、商品编码、属性编码获取商品对应属性信息
	 * @param companyId
	 * @param goodsCode
	 * @param propCode
	 * @return
	 */
	public GoodsProp loadGoodsProp(String companyId,String goodsCode,String propCode);
	
	/**
	 * 根据商品ID获取商品对应属性信息
	 * @param goodsId
	 * @return
	 */
	public ResultList<GoodsProp> queryGoodsProp(Long goodsId);
	
	/**
	 * 根据商品编码获取商品对应属性信息
	 * @param goodsCode
	 * @return
	 */
	public ResultList<GoodsProp> queryGoodsProp(String companyId,String goodsCode);
}
